﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CondorTravelOperacionesWeb.Source;
using condortravel.operaciones.business.operaciones;
using condortravel.operaciones.common.Log;
using condortravel.operaciones.business.incidenciasOperaciones;
using condortravel.operaciones.business.mantenimientoOperaciones;

namespace CondorTravelOperacionesWeb.Pages.Incidencia
{
    public partial class FormConIncidencias : PageBase
    {
        #region Business Objects
        private OperacionesServices operacionesServices;

        public OperacionesServices OperacionesServices
        {
            set { operacionesServices = value; }
        }

        private IncidenciasServices incidenciasServices;
        public IncidenciasServices IncidenciasServices
        {
            set { incidenciasServices = value; }
        }

        private MantenimientoServices mantenimientoServices;

        public MantenimientoServices MantenimientoServices
        {
            get { return mantenimientoServices; }
            set { mantenimientoServices = value; }
        }

        #endregion

        #region Page Events

        public void UCIncidenciaNuevo_GuardarIncidente_Click(object sender, EventArgs args)
        {
            UCIncidenciaListado.actualizarLista();
            visualizarFicha(0, true);//listado
            visualizarFicha(1, false);//editar
            visualizarFicha(2, false);//editar
            habilitarFicha(0);
        }


        protected void Page_Load(object sender, EventArgs e)
        {
            UCIncidenciaListado.OperacionesServices = this.operacionesServices;
            UCIncidenciaListado.IncidenciasServices = this.incidenciasServices;
            UCIncidenciaNuevo.MantenimientoServices = this.mantenimientoServices;
            UCIncidenciaNuevo.OperacionesServices = this.operacionesServices;
            UCIncidenciaNuevo.IncidenciasServices = this.incidenciasServices;
            UCIncidenciaNuevo.ValidationGroup = "valnuevoIncidente";
            UCEditarIncidencia.MantenimientoServices = this.mantenimientoServices;
            UCEditarIncidencia.OperacionesServices = this.operacionesServices;
            UCEditarIncidencia.IncidenciasServices = this.incidenciasServices;
            UCEditarIncidencia.ValidationGroup = "valeditarIncidente";
            
        }


        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        public void UCIncidenciaLista_NuevaIncidencia(object sender, EventArgs args)
        {
            visualizarFicha(1, true);//nuevo
            visualizarFicha(2, false);//editar
            habilitarFicha(1);
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="args"></param>
        public void UCIncidenciaLista_SelectIncidencia(object sender, GridViewCommandEventArgs args)
        {
            if (args.CommandArgument != null && !args.CommandArgument.Equals(String.Empty))
            {
                UCEditarIncidencia.CodigoIncidencia = int.Parse(args.CommandArgument.ToString());
                UCEditarIncidencia.mostrarIncidencia();
                //visualizarFicha(1, true);//nuevo
                visualizarFicha(2, true);//editar
                visualizarFicha(1, false);
                habilitarFicha(2);//Programaciones
            }

        }

        #endregion


        #region Page_Error

        protected void ControlError(object sender, Exception e)
        {
            UCMessageForm.showMessage(e.Message, ELogLevel.ERROR);
            LogApp.WriteLog(ELogLevel.ERROR, e.Message + "-" + e.StackTrace);
        }

        #endregion

        #region Private Methods

        private void habilitarFicha(int tabIndex)
        {
            this.tbcModos.Tabs[tabIndex].Enabled = true;
            this.tbcModos.ActiveTabIndex = tabIndex;
            this.tbcModos.Tabs[tabIndex].Visible = true;

        }

        private void visualizarFicha(int tabIndex, bool visualiza)
        {
            this.tbcModos.Tabs[tabIndex].Enabled = visualiza;
            this.tbcModos.Tabs[tabIndex].Visible = visualiza;

        }

        protected void ControlOK(string message)
        {
            UCMessageForm.showMessage(message, ELogLevel.INFO);
        }
        #endregion
    }
}